/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fisica;

import hibernate.Sesion;
import hibernate.objeto.PrincipioActivoMedicamento;
import java.util.Vector;
import org.hibernate.Query;
import presentacion.utilidad.Paginador;

/**
 *
 * @author Gonzalo
 */
public class PrincipioActivoMedicamentoFisica extends CapaFisica {

    /**
     * Retorna el vector de objetos PrincipioActivoMedicamento según el nombre
     * del principio activo.
     *
     * @param nombrePrincipioActivo El nombre del principio activo
     * @param estado false si es baja lógica, true si aún activos
     * @return El vector de objetos PrincipioActivo consultado, null si no existe
     */
    public static Vector<PrincipioActivoMedicamento> 
            getVectorPrincipioActivoMedicamentoPorNombreYEnBd(
            String nombrePrincipioActivo, boolean estado) {
        Query q = Sesion.sesion.createQuery(
                "from PrincipioActivoMedicamento " +
                "where lower(sinacentos(nombrePrincipioActivoMedicamento)) " +
                "like lower(sinacentos('%" + nombrePrincipioActivo + "%')) " + "and " +
                "enBdPrincipioActivoMedicamento = " + estado
                + " order by nombrePrincipioActivoMedicamento asc");

        Paginador.paginar(q);
        
        return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto PrincipioActivoMedicamento según el nombre principio
     * activo.
     *
     * @param principioActivo El nombre del principio activo
     * @param estado false si es baja lógica, true si aún activo
     * @return El objeto PrincipioActivo consultado, null si no existe
     */
    public static PrincipioActivoMedicamento
            getPrincipioActivoMedicamentoPorNombreYEnBd(String principioActivo,
            boolean estado) {
        Query q = Sesion.sesion.createQuery(
                "from PrincipioActivoMedicamento " +
                "where lower(sinacentos(nombrePrincipioActivoMedicamento)) = "
                + "lower(sinacentos('" + principioActivo + "')) " + "and " +
                "enBdPrincipioActivoMedicamento = " + estado);
        
        return (PrincipioActivoMedicamento) getObjeto(q);
    }

    /**
     * Retorna el objeto PrincipioActivoMedicamento según el id.
     *
     * @param idPrincipioActivoMedicamento  El id del principio activo del
     * medicamento
     * @return El objeto PrincipioActivoMedicamento consultado, null si no existe
     */
    public static PrincipioActivoMedicamento getPrincipioActivoMedicamentoPorId(
            int idPrincipioActivoMedicamento) {
        Query q = Sesion.sesion.createQuery(
                "from PrincipioActivoMedicamento " +
                "where idPrincipioActivoMedicamento = " + idPrincipioActivoMedicamento
                );

        return (PrincipioActivoMedicamento) getObjeto(q);
    }
}
